/*
 * 冒泡排序：它重复地走访过要排序的数列，一次比较两个元素，如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换，也就是说该数列已经排序完成。
 * 若文件的初始状态是正序的，一趟扫描即可完成排序。所需的关键字比较次数  和记录移动次数  均达到最小值：  ，  。
 * 所以，冒泡排序最好的时间复杂度为O(n^2)  。
 *　
 */
public class BubbleSort {
	public static int[] bubblesort(int[] data){
		 for(int i=data.length;i>0;i--){
			 for(int j=0;j<i-1;j++){
				 if(data[j]>data[j+1]){
					 int temp=data[j];
					 data[j]=data[j+1];
					 data[j+1]=temp;
				 }
			 }			 			 
		 }
		 return data;
	}
	public static void main(String[] args) {
		int[] a={4,3,6,2,7,5,9,1,10,23,-7,11,45,11,23,0,-2,-1,100,15};
		int[] b=bubblesort(a);
		for(int temp:b)
			System.out.print(temp+"  ");
	}

}
